package com.xxl.job.executor.pojo;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.util.Date;

/**
 * @description: B28 门架交易记录表
 * @author: draghu
 * @create: 2020-03-17 10:08
 */
@Data
public class GrantryTransMain {

    @JSONField(name = "tradeId")
    private String tradeId;

    @JSONField(name = "sectionid")
    private String sectionid;

    @JSONField(name = "gantryId")
    private String gantryId;

    @JSONField(name = "computerOrder")
    private Integer computerOrder;

    @JSONField(name = "hourBatchNo")
    private String hourBatchNo;

    @JSONField(name = "gantryOrderNum")
    private Integer gantryOrderNum;

    @JSONField(name = "gantryHex")
    private String gantryHex;
    @JSONField(name = "gantryHexOpposite")
    private String gantryHexOpposite;

    @JSONField(name = "transTime")
    private String transTime;

    @JSONField(name = "payFee")
    private Long payFee;

    @JSONField(name = "fee")
    private Integer fee;

    @JSONField(name = "discountFee")
    private Integer discountFee;

    @JSONField(name = "transFee")
    private Long transFee;

    @JSONField(name = "mediaType")
    private Integer mediaType;

    @JSONField(name = "obuSign")
    private Integer obuSign;
    @JSONField(name = "EtcCardType")
    private Integer EtcCardType;
    @JSONField(name = "terminalTransNo")
    private String terminalTransNo;
    @JSONField(name = "tollIntervalId")
    private String tollIntervalId;
    @JSONField(name = "tollIntervalName")
    private String tollIntervalName;
    @JSONField(name = "feeGroup")
    private String feeGroup;
    @JSONField(name = "payFeeGroup")
    private String payFeeGroup;
    @JSONField(name = "discountFeeGroup")
    private String discountFeeGroup;

    @JSONField(name = "vehiclePlate")
    private String vehiclePlate;

    @JSONField(name = "vehicleType")
    private Integer vehicleType;

    @JSONField(name = "identifyVehicleType")
    private Integer identifyVehicleType;

    @JSONField(name = "vehicleClass")
    private Integer vehicleClass;
    @JSONField(name = "TAC")
    private String TAC;

    @JSONField(name = "transType")
    private String transType;
    @JSONField(name = "terminalNo")
    private String terminalNo;

    @JSONField(name = "serviceType")
    private Integer serviceType;

    @JSONField(name = "algorithmIdentifier")
    private Integer algorithmIdentifier;

    @JSONField(name = "rateVersion")
    private String rateVersion;
    @JSONField(name = "keyVersion")
    private String keyVersion;
    @JSONField(name = "antennaID")
    private Integer antennaID;
    @JSONField(name = "OBUElectrical")
    private Integer OBUElectrical;
    @JSONField(name = "consumeTime")
    private Integer consumeTime;
    @JSONField(name = "passState")
    private Integer passState;
    @JSONField(name = "interruptSignal")
    private Integer interruptSignal;
    @JSONField(name = "specialType")
    private String specialType;

    @JSONField(name = "signStatus")
    private String signStatus;
    @JSONField(name = "vehicleSignId")
    private String vehicleSignId;

    @JSONField(name = "enTollLaneId")
    private String enTollLaneId;

    @JSONField(name = "enTollStationHex")
    private String enTollStationHex;
    @JSONField(name = "enTime")
    private String enTime;
    @JSONField(name = "enLaneType")
    private String enLaneType;

    @JSONField(name = "passId")
    private String passId;
    @JSONField(name = "lastGantryHex")
    private String lastGantryHex;
    @JSONField(name = "lastGantryTime")
    private String lastGantryTime;

    @JSONField(name = "OBUMAC")
    private String OBUMAC;

    @JSONField(name = "OBUIssueID")
    private String OBUIssueID;

    @JSONField(name = "OBUSN")
    private String OBUSN;
    @JSONField(name = "OBUVersion")
    private Integer OBUVersion;
    @JSONField(name = "OBUStartDate")
    private Integer OBUStartDate;
    @JSONField(name = "OBUEndDate")
    private Integer OBUEndDate;
    @JSONField(name = "OBUState")
    private String OBUState;

    @JSONField(name = "OBUVehiclePlate")
    private String OBUVehiclePlate;

    @JSONField(name = "OBUVehicleType")
    private Integer OBUVehicleType;

    @JSONField(name = "vehicleUserType")
    private Integer vehicleUserType;
    @JSONField(name = "vehicleSeat")
    private Integer vehicleSeat;

//    @Min(value = 2, message = "cameraNum min value 2")
//    @Max(value = 254, message = "cameraNum max value 254")
    @JSONField(name = "axleCount")
    private Integer axleCount;

    @JSONField(name = "totalWeight")
    private Integer totalWeight;
    @JSONField(name = "vehicleLength")
    private Integer vehicleLength;
    @JSONField(name = "vehicleWidth")
    private Integer vehicleWidth;
    @JSONField(name = "vehicleHight")
    private Integer vehicleHight;
    @JSONField(name = "CPUNetID")
    private String CPUNetID;
    @JSONField(name = "CPUIssueID")
    private String CPUIssueID;

    @JSONField(name = "CPUVehiclePlate")
    private String CPUVehiclePlate;
    @JSONField(name = "CPUVehicleType")
    private Integer CPUVehicleType;
    @JSONField(name = "CPUStartDate")
    private Integer CPUStartDate;
    @JSONField(name = "CPUEndDate")
    private Integer CPUEndDate;
    @JSONField(name = "CPUVersion")
    private Integer CPUVersion;
    @JSONField(name = "CPUCardType")
    private Integer CPUCardType;
    @JSONField(name = "CPUCardId")
    private String CPUCardId;
    @JSONField(name = "balanceBefore")
    private Long balanceBefore;
    @JSONField(name = "balanceAfter")
    private Long balanceAfter;
    @JSONField(name = "gantryPassCount")
    private Integer gantryPassCount;
    @JSONField(name = "gantryPassInfo")
    private String gantryPassInfo;
    @JSONField(name = "feeProvInfo")
    private String feeProvInfo;
    @JSONField(name = "feeSumLocalBefore")
    private Long feeSumLocalBefore;
    @JSONField(name = "feeSumLocalAfter")
    private Long feeSumLocalAfter;
    @JSONField(name = "feeCalcResult")
    private Integer feeCalcResult;
    @JSONField(name = "feeInfo1")
    private String feeInfo1;
    @JSONField(name = "feeInfo2")
    private String feeInfo2;
    @JSONField(name = "feeInfo3")
    private String feeInfo3;
    @JSONField(name = "holidayState")
    private Integer holidayState;

    @JSONField(name = "tradeResult")
    private Integer tradeResult;

    @JSONField(name = "verifyCode")
    private String verifyCode;
    @JSONField(name = "vehiclePicId")
    private String vehiclePicId;
    @JSONField(name = "vehicleTailPicId")
    private String vehicleTailPicId;

    @JSONField(name = "matchStatus")
    private Integer matchStatus;

    @JSONField(name = "validStatus")
    private Integer validStatus;

    @JSONField(name = "dealStatus")
    private Integer dealStatus;
    @JSONField(name = "relatedTradeId")
    private String relatedTradeId;
    @JSONField(name = "allRelatedTradeId")
    private String allRelatedTradeId;

    @JSONField(name = "stationDBTime")
    private String stationDBTime;

    @JSONField(name = "stationDealTime")
    private String stationDealTime;

    @JSONField(name = "stationValidTime")
    private String stationValidTime;

    @JSONField(name = "stationMatchTime")
    private String stationMatchTime;
    @JSONField(name = "enTollStationName")
    private String enTollStationName;
    @JSONField(name = "description")
    private String description;

    @JSONField(name = "receiveTime", format = "yyyy-MM-dd'T'HH:mm:ss")
    private Date receiveTime;     // datetime 类型
    @JSONField(name = "packName")
    private String packName;
    @JSONField(name = "transNo")
    private Long transNo;
    @JSONField(name = "rateCompute")
    private Integer rateCompute;
    @JSONField(name = "rateFitCount")
    private Integer rateFitCount;

    @JSONField(name = "OBUfeeSumBefore")
    private Long OBUfeeSumBefore;   // todo （废弃）

    @JSONField(name = "OBUfeeSumAfter")
    private Long OBUfeeSumAfter;    // todo （废弃）

    @JSONField(name = "OBUProvfeeSumBefore")
    private Long OBUProvfeeSumBefore;   // todo （废弃）

    @JSONField(name = "OBUProvfeeSumAfter")
    private Long OBUProvfeeSumAfter;

    @JSONField(name = "cardfeeSumBefore")
    private Long cardfeeSumBefore;

    @JSONField(name = "cardfeeSumAfter")
    private Long cardfeeSumAfter;

    @JSONField(name = "noCardTimesBefore")
    private Integer noCardTimesBefore;

    @JSONField(name = "noCardTimesAfter")
    private Integer noCardTimesAfter;

    @JSONField(name = "provinceNumBefore")
    private Integer provinceNumBefore;

    @JSONField(name = "provinceNumAfter")
    private Integer provinceNumAfter;

    @JSONField(name = "OBUTotalTradeSuccNumBefore")
    private Integer OBUTotalTradeSuccNumBefore;

    @JSONField(name = "OBUTotalTradeSuccNumAfter")
    private Integer OBUTotalTradeSuccNumAfter;

    @JSONField(name = "OBUProvTradeSuccNumBefore")
    private Integer OBUProvTradeSuccNumBefore;

    @JSONField(name = "OBUProvTradeSuccNumAfter")
    private Integer OBUProvTradeSuccNumAfter;
    @JSONField(name = "OBUTradeResult")
    private Integer OBUTradeResult;

    @JSONField(name = "tradeType")
    private Integer tradeType;

    @JSONField(name = "OBUInfoTypeRead")
    private Integer OBUInfoTypeRead;

    @JSONField(name = "OBUInfoTypeWrite")
    private Integer OBUInfoTypeWrite;

    @JSONField(name = "OBUPassState")
    private Integer OBUPassState;
    @JSONField(name = "feeVehicleType")
    private Integer feeVehicleType;
    @JSONField(name = "OBULastGantryHex")
    private String OBULastGantryHex;
    @JSONField(name = "OBULastGantryTime")
    private String OBULastGantryTime;
    @JSONField(name = "chargesSpecialType")
    private String chargesSpecialType;
    @JSONField(name = "OBUVerifyCode")
    private String OBUVerifyCode;

    @JSONField(name = "transactionType")
    private Integer transactionType;

    @JSONField(name = "vehicleSign")
    private String vehicleSign;

    @JSONField(name = "feeCalcSpecial")
    private Integer feeCalcSpecial;
    @JSONField(name = "lastGantryHexFee")
    private String lastGantryHexFee;
    @JSONField(name = "lastGantryHexPass")
    private String lastGantryHexPass;
    @JSONField(name = "chargeSpecialType")
    private String chargeSpecialType;   // todo （废弃）
    @JSONField(name = "isFixData")
    private Integer isFixData;
    @JSONField(name = "provMinFee")
    private Long provMinFee;
    @JSONField(name = "feeSpare1")
    private Integer feeSpare1;
    @JSONField(name = "feeSpare2")
    private Integer feeSpare2;
    @JSONField(name = "feeSpare3")
    private String feeSpare3;
    @JSONField(name = "feeProvBeginHex")
    private String feeProvBeginHex;

    @JSONField(name = "OBUpayFeeSumBefore")
    private Long OBUpayFeeSumBefore;

    @JSONField(name = "OBUpayFeeSumAfter")
    private Long OBUpayFeeSumAfter;

    @JSONField(name = "OBUdiscountFeeSumBefore")
    private Long OBUdiscountFeeSumBefore;

    @JSONField(name = "OBUdiscountFeeSumAfter")
    private Long OBUdiscountFeeSumAfter;
    @JSONField(name = "feeMileage")
    private Integer feeMileage;

    @JSONField(name = "OBUMileageBefore")
    private Integer OBUMileageBefore;

    @JSONField(name = "OBUMileageAfter")
    private Integer OBUMileageAfter;


    //  2020-04-01
    @JSONField(name = "gantryType")
    private Integer gantryType;
    @JSONField(name = "hgSendFlag")
    private Integer hgSendFlag;
    @JSONField(name = "CPCFeeTradeResult")
    private Integer CPCFeeTradeResult;
    @JSONField(name = "feeCalcSpecials")
    private String feeCalcSpecials;
    @JSONField(name = "feeProvBeginHexFit")
    private String feeProvBeginHexFit;
    @JSONField(name = "feeProvBeginTimeFit")
    private String feeProvBeginTimeFit;
    @JSONField(name = "feeProvEF04")
    private String feeProvEF04;
    @JSONField(name = "fitProvFlag")
    private Integer fitProvFlag;
    @JSONField(name = "gantryPassCountBefore")
    private Integer gantryPassCountBefore;
    @JSONField(name = "gantryPassInfoAfter")
    private String gantryPassInfoAfter;
    @JSONField(name = "OBUProvPayFeeSumAfter")
    private Long OBUProvPayFeeSumAfter;
    @JSONField(name = "OBUProvPayFeeSumBefore")
    private Long OBUProvPayFeeSumBefore;
    @JSONField(name = "pathFitFlag")
    private Integer pathFitFlag;
    @JSONField(name = "payFeeProvSumLocal")
    private Long payFeeProvSumLocal;
    @JSONField(name = "PCRSUVersion")
    private Integer PCRSUVersion;
    @JSONField(name = "readCiphertextVerify")
    private Integer readCiphertextVerify;
    @JSONField(name = "tradeReadCiphertext")
    private String tradeReadCiphertext;
    @JSONField(name = "tradeWriteCiphertext")
    private String tradeWriteCiphertext;
    @JSONField(name = "updateResult")
    private Integer updateResult;
    @JSONField(name = "tollIntervalSign")
    private String tollIntervalSign;
    @JSONField(name = "provMinFeeCalcMode")
    private Integer provMinFeeCalcMode;
    @JSONField(name = "feeProvBeginTime")
    private String feeProvBeginTime;
    @JSONField(name = "feeSumLocalAfterEF04")
    private Integer feeSumLocalAfterEF04;
    @JSONField(name = "lastGantryFeePass")
    private Integer lastGantryFeePass;
    @JSONField(name = "lastGantryMilePass")
    private Integer lastGantryMilePass;

    //===================== 4.10新增 ============================
    /**
     * 传输标识
     */
    @JSONField(name = "TransferTag")
    private Integer TransferTag;


}
